#pragma once
namespace ne{
enum EUpdateType {
	UT_NONE = 0,
	UT_UPDATE,		// Updates all objects once per frame
	UT_SIMULATION	// Called each simulation step
};

class LuaGameObject;
class GameObjectManager{
public:
	GameObjectManager(void);
	~GameObjectManager(void);

	void Update();
	void UpdateSimulation();
	bool AddGameObject(LuaGameObject* luaObject);
	bool RemoveGameObject(LuaGameObject* luaObject);
	void Shut();

private:
	std::list<LuaGameObject*> m_gameObjects;
	std::vector<LuaGameObject*> m_removeList;
	std::vector<LuaGameObject*> m_addList;
};
}